package com.shujia.day08;


class Outer3{
    int b = 10;

    public void fun(int num){
        int c = 20;
        class Inner{
            public void print(){
                int a =10;
                System.out.println("这是局部内部类，定义在Outer3方法内部");
                System.out.println(a);
                System.out.println(b);  // 是通过当前外部类的对象调用的 类名.this.b
//                c = 30; // 重新赋值会报错
                System.out.println(c);  // 是一个常量

            }
        }

        // 在函数内部 创建其对象，再进行调用，调用结束后，所有的对象都消失了
        new Inner().print();

        System.out.println(num);
    }



}


public class Code04InnerClass {
    public static void main(String[] args) {
        /*
            类的调用顺序：
                从外到内：
                    1.Outer3的类中有一个fun函数，该函数是一个成员方法，需要使用 Outer3 对象进行调用
                    2. fun函数运行时，对于Inner内部类来说只是对其进行定义了，并没有其他操作
                    3. fun函数运行时，其内部的所有内容，在函数运行结束后，都消失了
                    4. 局部内部类的调用只能在对于函数内部进行操作

         */

        Outer3 outer3 = new Outer3();
        outer3.fun(1);

    }
}
